﻿using System.Drawing;
using System.Windows.Forms;
using CloudDetector.Utils;

namespace CloudDetector.GUI
{
    /// <summary>
    /// A megjelenítő állapotainak felsorolása.
    /// </summary>
    public enum PictureBoxStatus { Neutral, Draw };

    /// <summary>
    /// A műholdfelvételeket megjelenítő osztály.
    /// </summary>
    public class MapPictureBox : PictureBox
    {
        #region Fields

        private FreeVector pVector;
        private PictureBoxStatus pStatus;

        #endregion

        #region Properties

        public FreeVector Vector
        {
            get { return pVector; }
            set { pVector = value; }
        }

        public PictureBoxStatus Status
        {
            get { return pStatus; }
            set { pStatus = value; }
        }

        #endregion

        #region Constructor

        /// <summary>
        /// A <see cref="FreeVector"/> helyvektort inicializáló metódus.
        /// </summary>
        public void InitVector()
        {
            pVector = new FreeVector();
        }

        #endregion

        /// <summary>
        /// A <see cref="PictureBox"/> osztály rajzoló eseményét felüldefiniáló metódus.
        /// </summary>
        /// <param name="pe">Rajzoló esemény argumentumok.</param>
        protected override void OnPaint(PaintEventArgs pe)
        {
            Graphics gr = pe.Graphics;

            gr.FillRectangle(Brushes.White, 0, 0, this.Width, this.Height);
            gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            if (Image != null) // ha van háttér
                gr.DrawImageUnscaled(Image, 0, 0);
            if (pVector != null && pStatus == PictureBoxStatus.Draw)
                pVector.Draw(gr);
        }

    }
}
